파리바게트 사이트 레이아웃

✒️ 2025-05-16 13:02 내용 수정


실습 목표

실습 흐름

  1. 웹 사이트의 html 구조를 확인하고, 구역별로 태그를 나누어 작성한다.
  2. 각 구역에 적용된 css를 작성한다.
  3. 반응형 웹 사이트 동작을 위한 미디어 쿼리를 추가한다.

파트별 코드

  1. html
<header class="header">
      <div class="inner">
        <h1 class="title"><a href="">PARIS BAGUETTE</a></h1>
        <button type="button" class="toggle-btn" id="toggle">
          <span></span>
          <span></span>
          <span></span>
        </button>
        <nav class="gnb">
          <div class="gnb-left">
            <span class="ls"><a href="#">파바의 약속</a></span>
            <span class="ls"><a href="#">파바 매거진</a></span>
            <span class="ls"><a href="#">파바 스토리</a></span>
            <span class="ls"><a href="#">상품 안내</a></span>
          </div>
          <div class="gnb-right">
            <span class="ls"><a href="#">갤러리</a></span>
            <span class="ls"><a href="#">매장 정보</a></span>
            <span class="ls"><a href="#">주문 정보</a></span>
            <span class="ls"><a href="#">프로모션</a></span>
            <span class="ls"><a href="#">검색</a></span>
          </div>
        </nav>
      </div>
    </header>
  1. css
    • 상단 메뉴를 왼쪽 오른쪽 박스로 나누어 배치
    • 특정 너비 이하에선 메뉴를 안보이게 하고, 버튼을 눌러야 메뉴가 나오도록 설정
/* common */
.content{width: 100%; padding: 24px;}
.inner{
    max-width: 1440px; margin: 0 auto;
    background-color: white;
}
@media screen and (max-width:1200px) {
    .inner{width: 100%;}
}
/* header */
.header{width: 100%; height: 90px; background-color: blue;}

.header .inner{
    margin: 0 auto; height: 100%;
    padding: 0 20px;
    position:relative;
    background: transparent;
}
.header .inner .title{
    display: block;
    width: 200px; height: 18px;
    position:absolute; left: 45%; top:25%;
    /* z-index:1; */
}
.header .inner .title a{
    width: 200px; height: 18px;
    font-size: 24px;
    line-height: 1.5;
    color:white;
}
.header .inner .toggle-btn{
    display:none;
    position:absolute; left:5%; top:40%;
    width: 30px; height: 25px;
    background-color: transparent; border: 0;
}
.header .toggle-btn span{
    display: block; width: 100%; height: 2px; margin: 4px 0;
    background-color: #fff;
}

.header .inner .gnb{
    height: 100%;
    display: flex; align-items: center;
    position:relative;
}
.header .inner .gnb-left{ width:50%; text-align: left; vertical-align: middle;}
.header .inner .gnb-left span a{color:#fff;}

.header .inner .gnb-right{width:50%; text-align: right;}
.header .inner .gnb-right span a{color:#fff;}

@media screen and (max-width:930px) {
    .header .inner{width:100%;}
    .header .inner .gnb{
        display:none; overflow:hidden;
        position: fixed; left:0; top:80px;
        width: 300px; height: 100%;
    }
    .header .inner .toggle-btn{display:block;}

    .header .inner .gnb-left{display:flex; flex-direction: column; margin:10px 20px;}

    .header .inner .gnb-right{display:flex; flex-direction: column; text-align: left; margin:10px 20px;}
    .header .inner .gnb-left span a{color:#333; line-height: 1.5;}
    .header .inner .gnb-right span a{color:#333; line-height: 1.5;}
}

.header .inner .gnb.active{
    display:block;
    background-color: #fff;
}
  1. javascript
let btn = document.getElementsByClassName("toggle-btn")[0];
let isOpen = false;
let menu = document.getElementsByClassName("gnb")[0];

btn.addEventListener("click", function () {
    isOpen = !isOpen;

    if (isOpen) {
        menu.classList.add('active');
    } else {
        menu.classList.remove('active');
    }
});

window.addEventListener('resize', function() {
    let windWidth = this.innerWidth;
    if (windWidth > 930) {
        menu.classList.remove('active');
    }
});

paris header.png
paris header 1-2.png


section 1

  1. html
    <section class="promotion content">
      <div class="inner">
        <div class="title-wrap">
          <h2 class="title">PROMOTION</h2>
          <span class="info"><a href="#">SHOW MORE</a></span>
        </div>
        <div class="wrap">
          <div class="box">
            <a href="">
              <img src="../image/promo1.jpg" alt="#" />
              <span class="badge">예정</span>
            </a>
            <div class="post">
              <p class="post-title"><a href="#">제목1</a></p>
              <a href="">READ MORE</a>
            </div>
          </div>

          <div class="box">
            <a href="">
              <img src="../image/promo2.jpg" alt="#" />
              <span class="badge">예정</span>
            </a>
            <div class="post">
              <p class="post-title"><a href="#">제목2</a></p>
              <a href="">READ MORE</a>
            </div>
          </div>

          <div class="box">
            <a href="">
              <img src="../image/promo3.jpg" alt="#" />
              <span class="badge">예정</span>
            </a>
            <div class="post">
              <p class="post-title"><a href="#">제목3</a></p>
              <a href="">READ MORE</a>
            </div>
          </div>

          <div class="box">
            <a href="">
              <img src="../image/promo4.jpg" alt="#" />
              <span class="badge">예정</span>
            </a>
            <div class="post">
              <p class="post-title"><a href="#">제목4</a></p>
              <a href="">READ MORE</a>
            </div>
          </div>
        </div>
      </div>
    </section>
  1. css
    • 마우스가 그림 위에 올라가면 그라데이션이 생기는 효과 적용
/* common */
.content{width: 100%; padding: 24px;}
.inner{
    max-width: 1440px; margin: 0 auto;
    background-color: white;
}
@media screen and (max-width:1200px) {
    .inner{width: 100%;}
}
.content .title{font: bold 1.75rem 'inherit'; color: #444;}
.content .inner .wrap{
    width:100%;
    display:flex; flex-direction: row; flex-wrap: wrap;
    justify-content: space-between;
    margin:0 auto;
}
.content .inner .title-wrap{
    display:flex; flex-direction: row; justify-content: space-between;
    margin: 20px 0;
}
.content .inner .title-wrap .info{margin-right:30px;}


/* promotion */
.promotion .box{position:relative; width: calc((100% - 30px * 3) / 4);}

@media screen and (max-width:1200px) {
    .promotion .box{width: calc((100% - 30px * 3) / 4);}
}

@media screen and (max-width:768px) {
    .promotion .box{width: calc((100% - 30px * 1) / 2); margin-bottom: 24px;}
}

@media screen and (max-width:480px) {
    .promotion .box{width: 100%;}
}

.promotion .box  > a{position: relative; color: #333; font-size: 18px; font-weight: bold;}
.promotion .box > a::after{ 
    content: ''; width: 100%; height: 100%; 
    position: absolute; left:0; top:0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.5), transparent);
    transition:0.4s; opacity:0;
}
.promotion .box:hover > a::after{opacity:1;}

.promotion .box a img{ width: 100%; display:block;}
.promotion .box a .badge{
    position:absolute; left:0; top:0; padding: 5px;
    background-color: navy; color:#fff;
    font-size: 12px;
}
.promotion .box .post{margin-top: 20px;}
.promotion .box:hover .post .post-title{text-decoration:underline black;}

paris section 1-1.png
paris section 1-2.png
paris section 1-3.png


section 2

  1. html
    <section class="products content">
      <div class="inner">
        <div class="title-wrap">
          <h2 class="title">PRODUCTS</h2>
          <span class="info"><a href="#">SHOW MORE</a></span>
        </div>
        <div class="wrap">
          <div class="box">
            <a href="#" class="pic">
              <img src="../image/논산생딸기.png" alt=""/>
            </a>
            <div class="post">
              <p class="post-title">
                <a href="#">논산 생딸기 와르르 케이크</a>
              </p>
            </div>
          </div>

          <div class="box">
            <a href="#" class="pic">
              <img src="../image/생딸기-프렌치.jpg" alt="" />
            </a>
            <div class="post">
              <p class="post-title"><a href="">생딸기 타르트</a></p>
            </div>
          </div>

          <div class="box">
            <a href="#" class="pic">
              <img src="../image/커피콩크림빵.jpg" alt="" />
            </a>
            <div class="post">
              <p class="post-title"><a href="">커피콩 크림빵</a></p>
            </div>
          </div>

          <div class="box">
            <a href="#" class="pic">
              <img src="../image/사르르왕구름빵.jpg" alt="" />
            </a>
            <div class="post">
              <p class="post-title"><a href="">사르르 왕구름빵</a></p>
            </div>
          </div>

          <div class="box">
            <a href="#" class="pic">
              <img src="../image/쿠앤크-딸기-샌드.png" alt="" />
            </a>
            <div class="post">
              <p class="post-title"><a href="">생딸기 쿠앤크</a></p>
            </div>
          </div>
        </div>
      </div>
    </section>
  1. css
    • 마우스가 그림 위에 올라가면 그라데이션이 생기는 효과 적용
/* common */
.content{width: 100%; padding: 24px;}
.inner{
    max-width: 1440px; margin: 0 auto;
    background-color: white;
}
@media screen and (max-width:1200px) {
    .inner{width: 100%;}
}
.content .title{font: bold 1.75rem 'inherit'; color: #444;}
.content .inner .wrap{
    width:100%;
    display:flex; flex-direction: row; flex-wrap: wrap;
    justify-content: space-between;
    margin:0 auto;
}
.content .inner .title-wrap{
    display:flex; flex-direction: row; justify-content: space-between;
    margin: 20px 0;
}
.content .inner .title-wrap .info{margin-right:30px;}


/* product */
.products .box{width: calc((100% - 24px * 4) / 5);}

.products .box a.pic{position:relative; display: block;}
.products .box .pic img{display:block; width: 100%;}
.products .box p{margin-top: 10px; color:black;}

.products .box > a::after{
    content:''; width: 100%; height: 100%;
    position: absolute; left: 0; top: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
    transition: 0.4s; opacity:0;
}

.products .box > a:hover::after{opacity: 1;}
.products .box:hover p{text-decoration: underline black;}

@media screen and (max-width:768px) {
    .products .box{width: calc((100% - 24px * 3) / 4); margin-bottom: 24px;}
}

paris section 2-1.png
paris section 2-2.png


section 3

  1. html
    <section class="pb-story content">
      <div class="inner">
        <div class="title-wrap">
          <h2 class="title">PB Story</h2>
          <span class="info"><a href="#">SHOW MORE</a></span>
        </div>
        <div class="wrap">
          <div class="box">
            <a href="#" class="pic"><img src="../image/pb-story-1.jpg" alt=""/></a>
            <a href="#" class="desc">
              <p class="post-category">광고</p>
              <h3 class="post-title">
                <strong>VIP석에서 파리 생제르맹 경기 직관 어떤데?!?</strong>
              </h3>
              <p class="post-excerpt">
                파리 생제르맹 VIP 혜택이 궁금하시다구요?! 유튜버 ‘파리지앙
                2세’와 함께 보여드릴게요 😎 대기 없는 입장과 호화로운 핑거 푸드
                가득한 라운지, 기념품까지 챙겨주는 VIP 티켓 그래서 어떻게
                받냐구요😮?!?
              </p>
              <p class="post-date">2023-12-28</p>
            </a>
          </div>

          <div class="box">
            <a href="#" class="pic"><img src="../image/pb-story-2.jpg" alt=""/></a>
            <a href="#" class="desc">
              <p class="post-category">광고</p>
              <h3 class="post-title">
                <strong
                  >🎅 Magical Holiday | 놓치면 큰일나는 크리스마스 케이크 구매
                  혜택 💙</strong
                >
              </h3>
              <p class="post-excerpt">
                Magical Holiday 💙 이번 크리스마스, 케이크의 달콤한 마법이
                파리바게뜨에서 펼쳐집니다! 윤서가 정성스레 만든 초대장을 받은
                당신💌 케이크에 불을 붙여 함께 이 겨울을 밝혀주세요❣
              </p>
              <p class="post-date">2023-12-28</p>
            </a>
          </div>

          <div class="box">
            <a href="#" class="pic"><img src="../image/pb-story-3.jpg" alt=""/></a>
            <a href="#" class="desc">
              <p class="post-category">광고</p>
              <h3 class="post-title">
                <strong
                  >아니 파바 아니고 진짜 파리 가는거 맞다니까? 🛫⚽</strong
                >
              </h3>
              <p class="post-excerpt">
                ⚽ 파리바게뜨 X 파리 생제르맹 파리 현지 응원 이벤트 ⚽ 파바에
                갔을 뿐인데 파리 생제르맹 경기 직관하는 성덕이 된다고😮?!?
                자세한 내용은 파리바게뜨 홈페이지와 파바앱에서 확인해 주세요💙
              </p>
              <p class="post-date">2023-12-08</p>
            </a>
          </div>

          <div class="box">
            <a href="#" class="pic"><img src="../image/pb-story-4.jpg" alt=""/></a>
            <a href="#" class="desc">
              <p class="post-category">광고</p>
              <h3 class="post-title">
                <strong>출발합니다 ✈파리 생제르맹 스타디움 랜선 투어 🇨🇵</strong>
              </h3>
              <p class="post-excerpt">
                너무나도 궁금했던 파리 생제르맹 Parc des Princes 스타디움! 공식
                파트너사인 파바가 먼저 다녀왔습니다😎 파바와 함께 랜선으로
                파리로 떠나보아요💙
              </p>
              <p class="post-date">2023-12-08</p>
            </a>
          </div>
        </div>
      </div>
    </section>
  1. css
    • 마우스가 그림 위에 올라가면 그라데이션이 생기는 효과 적용
    • 텍스트가 특정 라인 수보다 길면 말 줄임표 표시로 숨기는 효과를 설정
/* common */
.content{width: 100%; padding: 24px;}
.inner{
    max-width: 1440px; margin: 0 auto;
    background-color: white;
}
@media screen and (max-width:1200px) {
    .inner{width: 100%;}
}
.content .title{font: bold 1.75rem 'inherit'; color: #444;}
.content .inner .wrap{
    width:100%;
    display:flex; flex-direction: row; flex-wrap: wrap;
    justify-content: space-between;
    margin:0 auto;
}
.content .inner .title-wrap{
    display:flex; flex-direction: row; justify-content: space-between;
    margin: 20px 0;
}
.content .inner .title-wrap .info{margin-right:30px;}


/* pb-story */
.pb-story .box{
    width: calc((100% - 30px * 1) / 2); margin: 0 0 30px;
    display: flex; justify-content: space-between; flex-wrap:wrap;
}

.pb-story .box a{
    display: block; width: calc((100% - 30px * 1) / 2);
    color:#333;
}

@media screen and (max-width:1024px) {
    .pb-story .box{width: 100%;}
}

@media screen and (max-width:768px) {
}

@media screen and (max-width:480px) {
    .pb-story .box a{width: 100%; margin-bottom: 30px;}
}

.pb-story .box a img{width: 100%; display: block;}
.pb-story .box a .post-category{max-width: 0 0 20px;}
.pb-story .box a .post-title{max-width: 0 0 20px; font-size: 20px;}
.pb-story .box a .post-excerpt{
    max-width: 0 0 20px; font-size: 14px;
    margin-bottom: 20px; line-height: 20px;
    display: -webkit-box; /* -webkit-box로 설정*/
    -webkit-line-clamp:3; /* 텍스트 라인 수 조절 */
    -webkit-box-orient: vertical; /* 배치 방법 */
    overflow: hidden;
}
.pb-story .box a .post-date{font-size: 12px;}

.pb-story .box a .post-category:hover{text-decoration: underline;}
.pb-story .box a .post-title:hover{text-decoration: underline;}
.pb-story .box a .post-excerpt:hover{text-decoration: underline;}

.pb-story .box a.pic{position:relative;}

.pb-story .box a.pic::after{
    content:''; position: absolute; left: 0; top:0;
    width: 100%; height: 100%;
    background: linear-gradient(to top, rgba(0,0,0,0.5), transparent);
    opacity:0;
    transition:0.3s;
}
.pb-story .box a.pic:hover::after{opacity:1;}

paris section 3-1.png
paris section 3-2.png
paris section 3-3.png


section 4

  1. html
    <section class="magazine content">
      <div class="inner">
        <div class="title-wrap">
          <h2 class="title">PB MAGAZINE</h2>
          <span class="info"><a href="#">SHOW MORE</a></span>
        </div>
        <div class="wrap">
          <div class="box">
            <a href="#">
              <img src="../image/magazine1.png" alt="2024년 신년 제품" />
            </a>
            <div class="post">
              <p class="post-title"><a href="#">2024년 신년 제품</a></p>
              <a href="#" class="read_more">💙Let’s Go Together! 2024 승리의 기운!⚽ 2024년 다 함께✨</a>
            </div>
          </div>
          <div class="box">
            <a href="#">
              <img
                src="../image/magazine2.png"
                alt="파리생제르맹 스마트톡 100원"
              />
            </a>
            <div class="post">
              <p class="post-title">
                <a href="#">파리생제르맹 스마트톡 100원</a>
              </p>
              <a href="#" class="read_more">💙Let’s Go Together! 2024 승리의 기운!⚽ 파리생제르맹 스마트톡 100원🎉</a>
            </div>
          </div>
          <div class="box">
            <a href="#">
              <img src="../image/magazine3.png" alt="파리로 응원가자!" />
            </a>
            <div class="post">
              <p class="post-title"><a href="#">파리로 응원가자!</a></p>
              <a href="#" class="read_more">💙PARIS SAINT-GERMAIN 파리 현지 응원 기회를!⚽ 파리로 응원가자!</a>
            </div>
          </div>
        </div>
      </div>
    </section>
  1. css
    • 마우스가 그림 위에 올라가면 그라데이션이 생기는 효과 적용
    • 텍스트가 그림 위로 올라오고, 마우스가 그림 위로 올라왔을 때 그라데이션에 글자가 가려지지 않도록 자식 요소(글자)에 z-index를 설정
/* common */
.content{width: 100%; padding: 24px;}
.inner{
    max-width: 1440px; margin: 0 auto;
    background-color: white;
}
@media screen and (max-width:1200px) {
    .inner{width: 100%;}
}
.content .title{font: bold 1.75rem 'inherit'; color: #444;}
.content .inner .wrap{
    width:100%;
    display:flex; flex-direction: row; flex-wrap: wrap;
    justify-content: space-between;
    margin:0 auto;
}
.content .inner .title-wrap{
    display:flex; flex-direction: row; justify-content: space-between;
    margin: 20px 0;
}
.content .inner .title-wrap .info{margin-right:30px;}


/* pb magazine */
.magazine .box{width: calc((100% - 24px * 2) / 3); position: relative;}
.magazine .box > a{
    position:relative;
    width: 100%; display: block;
}

/* 
가상요소 우선순위
::after > ::before > 원본 요소 : 부모

img 태그는 ::before와 ::after를 만들지 못함
- 닫는 태그가 있는 경우엔 내용을 넣을 수 있고, 자식이 존재할 수 있음
*/

.magazine .box::after{
    content:''; width: 100%; height: 100%;
    position: absolute; left:0; top:0;
    background: linear-gradient(to top, rgba(0,0,0,0.5), transparent);
    opacity:0;
    transition: 0.3s;
}

.magazine .box:hover::after{opacity: 1;}

.magazine .box a img{width: 100%; display: block;}
.magazine .box .post{
    position:absolute; left:0; top:0; z-index: 1;
    width: 100%; height: 100%;
    display: flex; flex-direction: column;
    justify-content: flex-end; align-items: center;
    color:#fff;
}

@media screen and (max-width:1024px) {
    .magazine .inner .wrap{justify-content: space-around;}
    .magazine .box{ width: calc((100% - 24px * 1) / 2); margin-bottom: 24px;}
}

@media screen and (max-width:768px) {
    .magazine .box{ width: 100%; max-width: 400px;}
}

@media screen and (max-width:480px) {
}

.magazine .box .post a{color:#fff; font-weight: bold; padding:24px 30px;}
.magazine .box .post .post-title{font-size: 20px;}
.magazine .box .post .read_more{font-size: 18px; color: #fff; }

paris section 4-1.png
paris section 4-2.png
paris section 4-3.png


section 5

  1. html
    <section class="sns content">
      <div class="inner">
        <div class="title-wrap">
          <h2 class="title"><a href="#">@parisbaguette_kr</a></h2>
          <span class="subtitle">instagram</span>
        </div>
        <div class="wrap">
          <div class="box">
            <a href="#" class="item">
              <h3 class="title">고객센터</h3>
              <p>고객의 소리를 적극 경청하고 고객만족 향상 활동을 지속적으로 실천합니다.</p>
            </a>
          </div>
          <div class="box">
            <a href="#" class="item">
              <h3 class="title">제휴 안내</h3>
              <p>다양한 온라인 제휴와 카드 정보를 확인하세요.</p>
            </a>
          </div>
          <div class="box">
            <a href="#" class="item">
              <h3 class="title">공지사항</h3>
              <p>파리바게뜨 공지내용을 확인하세요.</p>
            </a>
          </div>
        </div>
      </div>
    </section>
  1. css
    • 마우스가 그림 위에 올라가면 그라데이션이 생기는 효과 적용
    • 박스 사이에 구분선 바를 추가
/* common */
.content{width: 100%; padding: 24px;}
.inner{
    max-width: 1440px; margin: 0 auto;
    background-color: white;
}
@media screen and (max-width:1200px) {
    .inner{width: 100%;}
}
.content .title{font: bold 1.75rem 'inherit'; color: #444;}
.content .inner .wrap{
    width:100%;
    display:flex; flex-direction: row; flex-wrap: wrap;
    justify-content: space-between;
    margin:0 auto;
}
.content .inner .title-wrap{
    display:flex; flex-direction: row; justify-content: space-between;
    margin: 20px 0;
}
.content .inner .title-wrap .info{margin-right:30px;}


/* sns */
.sns .inner .title-wrap{display: block; width: 100%; text-align: center;}
.sns .title-wrap .title{margin: 10px;}
.sns .title{width: 100%;}

.sns .box{position:relative; width: 33.3333%;}
.sns .box .item{position:relative; display: block; padding:50px 100px 50px 50px;}
.sns .box .item .title{text-align: left; margin:0 0 10px; font-size: 18px; color:blue;}
.sns .box .item p{font-weight: bold; color:#444;}

.sns .box::after{
    content:''; display:block;
    width: 2px; height: 50%;
    position: absolute; right:0; top:25%;
    background-color: #444;
    
}

@media screen and (max-width:1024px) {
    .sns .box{width: 100%;}
    .sns .box .item .title{margin:0 0 20px;}
    .sns .box .item{padding:30px 20px;}
    .sns .box::after{
        width: 100%; height: 2px;
        right:0; top:100%;
    }
}

.sns .wrap .item::after{
    content:'';
    width: 100%; height: 100%;
    position: absolute; left:0; top:0;
    background: linear-gradient(to top, rgba(0,0,0,0.4), transparent);
    opacity: 0;
    transition: 0.3s;
}

.sns .wrap .item:hover::after{opacity: 1;}

paris section 5-1.png
paris section 5-2.png
paris section 5-3.png


  1. html
    <footer class="footer">
      <div class="inner">
        <div class="info box">
          <ul class="list">
            <li><h3 class="list-title">Info</h3></li>
            <li><a href="">브랜드 소개</a></li>
            <li><a href="">회사 소개</a></li>
            <li><a href="">창업안내</a></li>
            <li><a href="">B2B 주문 및 문의</a></li>
            <li><a href="">안전보건경영방침</a></li>
            <li><a href="">거래희망사전등록</a></li>
            <li><a href="">윤리신고센터</a></li>
            <li><a href="">채용</a></li>
          </ul>
        </div>
        <div class="contact box">
          <ul class="list">
            <li><h3 class="list-title">Contact Us</h3></li>
            <li><a href="">고객센터</a></li>
            <li>080-731-2027</li>
            <li><p>
                  <span>평일 09:00 - 17:00</span>
                  <span>(점심 12:00 - 13:00)</span>
                </p>
            </li>
            <li><a href="">고객칭찬</a></li>
          </ul>
        </div>
        <div class="logo box">
          <div class="pic-title">
            <a href=""><img src="../image/logo1.png" alt=""></a>
          </div>
          <div class="pic">
            <a href=""><img src="../image/logo2.png" alt=""></a>
            <a href=""><img src="../image/logo3.png" alt=""></a>
            <a href=""><img src="../image/logo4.png" alt=""></a>
            <a href=""><img src="../image/logo5.png" alt=""></a>
            <a href=""><img src="../image/logo6.png" alt=""></a>
          </div>
        </div>
        <div class="sns box">
          <div class="list">
            <h3 class="list-title">Follow Us</h3>
            <div class="pic">
              <a href=""><img src="../image/sns_ico_01.svg" alt=""></a>
              <a href=""><img src="../image/sns_ico_02.svg" alt=""></a>
              <a href=""><img src="../image/sns_ico_03.svg" alt=""></a>
            </div>
          </div>
        </div>
      </div>
      <div class="menu">
        <ul class="menu-footer">
          <li><span>이용약관</span></li>
          <li><span>개인정보처리방침</span></li>
          <li><span>이메일무단수집거부</span></li>
          <li><span>영상정보처리기기운영관리방침</span></li>
        </ul>
        <div class="copyright">
          <span >All Rights Reserved © PARIS BAGUETTE, PARIS CROISSANT CO., LTD. 경기도 성남시 중원구 사기막골로 31번길 18 (주)파리크리상</span>
        </div>
      </div>
    </footer>
  1. css
    • ul 항목을 가로로 배치하고, li 항목 사이에 구분선 바를 추가
    • 이미지를 박스에 넣고 박스의 테두리를 변경하여 원형 아이콘처럼 변경
/* footer */
.footer{background-color: #a5a5a5;}
.footer .inner {
    width:100%;
    display:flex; flex-direction: row; flex-wrap: wrap;
    justify-content: center;
    margin:0 auto;
    padding: 70px 0 20px;
    background-color: transparent;
}

.footer .box{width:calc((100% - 20px * 3) / 4); line-height: 2;}
.footer .list .list-title{padding-bottom: 15px;}

@media screen and (max-width:1024px) {
    .footer .box{
        width:calc((100% - 20px * 1) / 2); line-height: 1.5;
        margin-bottom: 30px;
    }
}

.footer .list{color: #fff;}
.footer .list a{color:#fff;}

.footer .contact .list span{display: block; line-height: 1;}

.footer .logo .pic-title img{width: 120px;}
.footer .logo .pic{
    display: flex; flex-direction: row; justify-content: flex-start; flex-wrap: wrap;
}
.footer .logo .pic a img{display: block;  width: 50px; height: 34px; margin:10px;}

.footer .sns .pic{display: flex; justify-content: flex-start; align-items: center;}
.footer .sns .pic a{
    display: block; width:50px; height:50px; margin-right: 10px; border-radius: 50%; background-color: white;
    position: relative;
}

.footer .sns .pic a img{
    display: block; width: 60%; height: 60%;
    position: absolute; left: 20%; top:20%;
}

.footer .menu-footer{
    display: flex; justify-content: center; flex-wrap: wrap;
    margin: 0 0 7px;
}
.footer .menu-footer span{
    font: bold 14px 'inherit'; color:#fff;
    position:relative;
}

.footer .menu-footer span::after{
    content:'|'; color:#fff;
    margin:0 5px;
}
.footer .menu-footer li:last-of-type span::after{display:none}
.footer .menu-footer li:nth-of-type(2) span{color:tomato;}

.footer .menu .copyright{
    text-align: center; border-top: 1px solid #fff; padding-top: 7px;
    
}

.footer .menu .copyright span{font-size: 12px; color:#fff;}

paris footer.png
paris footer 2.png